Takže mám nějaké potíže s přijetím správného použití list :: sort (), pokud jde o seznam struktur. Zde je příslušný kód: strukturovaný student { char firstnm [20], lastnm [20]; int id, školní známka; }; listsList; // irelevantní kód ... cout << "Zadejte své jméno, ID a známku. (Příklad: myfirst mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (data); sList.sort (); Problém, který se snažím vyřešit, je použití sList.sort () k třídění podle id. Nemám však tušení, jak jej správně předat do list :: sort (). Předem děkujeme za jakoukoli pomoc / čas! EDIT: Řešením bylo jednoduše přidat toto do mé struktury bool operator <(const student & cmp) const { návratové ID
2021-01-22 08:20:10
Měli byste se podívat na std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Existuje několik definic této funkce a jedna, kde můžete určit, co chcete seřadit. Podívejte se také na tento příspěvek, myslím, že je to to, co potřebujete: https://stackoverflow.com/a/21234017/6663947 Upravit : to je příklad komparátoru: sList.sort ([] (const student & a, const student & b) {return a.idvoid sort (Porovnat komp); Za předpokladu, že chcete třídit studentské objekty ve vašem seznamu podle ID klíče ve vzestupném pořadí. Můžete buď definovat operator